17
תגובות
הצלחתי להכין מחלקת יצירת HTML (עם אלפי שורות קוד... פרויקט רציני) שיוצרת HTML בצורה מתקדמת. קוד לדוגמה:
http://pastebin.com/cRzzMFMt
וזה רק ממש מעט מהדברים שאפשר לעשות אתה, יש לה עשרות פקדים ומאפיינים (כמו שיש שם את HTTP-method,id,widjet-id וכו').
פה מגיעות 3 שאלות:
1) כדי לי להכין את זה לתיק עבודות?
2) איזה שימוש מעשי יש לזה?
3) כדי לי לשים על זה רישיון על שמי?
תודה רבה :)

17 תשובות

avatar ענה Michael ב 28 לינואר 2013 #

1. תיק עבודות לפרילנסינג אולי, ובכלל עדיף לא לשים דברים כאלה אלא להעלות אותם לג'יטהאב ולשים קישור בקו"ח, זה נראה יותר מתאים.
2. אתה בנית, אתה צריך לדעת :)
3. אני לא חושב שממש הבנת את העיניין של קוד פתוח.

avatar ענה iiddaannyy ב 28 לינואר 2013 #

1. הייתי עושה את זה קוד פתוח ומציג את זה שיבקשו לראות עבודות.
2. גם אני פעם הכנתי משהו דומה, של טפסים בלבד. הבעיה היא שזה לא הכי שימושי בהרבה מקרים, וזה כי אם מתכננים את המערכת בצורה הנכונה אז אין צורך להשתמש בדברים כאלה בשביל ליצור קודים של html, אלא פשוט לכתוב את ה-html כמו שהוא.
מה שכן יכול להיות שימושי (מה שאני עשיתי בעבר) זה שתיצור משהו דומה שיוצר טפסים, ולכל שדה תהיה אפשרות להגדיר את ההגבלות שצריכות להיות לו (אורך טקסט, התאמה עם ביטוי רגולרי וכו'), ואז ברגע שישלחו את הטופס אז בדיקת התקינות תבדוק את הטופס לפי מה שנקבע מראש. אפשר גם להוסיף עם הרינדור של הטופס js שיבדוק את הדברים בזמן אמת.

avatar ענה liorel100 ב 28 לינואר 2013 #

הכנתי את זה כי לא היה לי דבר יותר טוב לתכנת, וכי שמעתי שלהרבה פריימוורקים יש אחד כזה. לא יודע למה יש להם א זה, אבל כנראה יש לזה סיבה לא?
אני השקעתי על זה מלא.

ניקח דוגמה משהו פשוט (אני כתבתי לך אותו על המקום) :

echo HTMLpage::create(HTMLtag::create('head'), HTMLtag::create('body',
        array('direction' => HTML_RIGHT_TO_LEFT, 'language' => 'he', 'align' => 'right'),
          array(Container::create(
            array('id' => 'simple-paragraph',  'title' => 'simple paragraph','width' => '900px','centering-box' => true,'content-padding' => '30px'),
            array(Text::create('hello'), Headline::create(
              array('rank' => 3,'h-line' => true),
              array(new Text('hello title')
                                   )
                              )
                        )
                )
        )
))->toString();

והפלט :
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
        direction: inherit;
        text-align: inherit;
        text-decoration: inherit;
        color: inherit;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
h1              { font-size: 2em; margin: .67em 0 }
h2              { font-size: 1.5em; margin: .75em 0 }
h3              { font-size: 1.17em; margin: .83em 0 }
h4              { font-size: 1em; margin: 1.12em 0 }
h5              { font-size: .83em; margin: 1.5em 0 }
h6              { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4,
h5, h6          { font-weight: bolder }

</style>
</head>
<body dir="rtl" lang="he" style="direction: rtl;text-align: right;">
<div id="simple-paragraph" title="simple paragraph" style="width: 900px;margin-left: auto;margin-right: auto;padding: 30px;">
hello
<h3>
hello title
</h3><hr />
</div>
</body>
</html>

לכן אני מחפש לזה שימושיות. בנוגע לקו"ח אתה צודק, אני אוסיף. זה נראה עבודה רצינית או משהו סביר?
בנוסף לזה, אני לא רוצה שכל אחד יעתיק את זה בלי רישיון, זה קוד שמאד השקעתי בו וזה לא מתאים ככה.

avatar ענה liorel100 ב 28 לינואר 2013 #

עידן, המטרה פה היא להכליל את כל HTML בתוך זה. פרט לזה, יש שם גם דברים לטפסים-פקדי טפסים, מאפייני טפסים וכדומה. בנוסף על כך, אני עובד על מחלקה שנקראת request שמקבלת כשפרמטר טופס, ומוציאה פלט שמייצג את תוצרי הטופס מעובדים, עם הודעות שגיאה מותאמות איפה שצריך וכו'.

בכל אופן אני עובד על מתודה שהופכת Formwidget לrequest, ככה שיהיה אפשר לעבור בנוחות בין שניהם.

avatar ענה iiddaannyy ב 28 לינואר 2013 #

נשמע טוב. רק אני עדיין בטוח שלהכליל את כל ה-html זה לא שימושי.
דבר הופך להיות שימושי ברגע שהוא עוזר לך, כשהוא חוסך לך משהו.
אני באופן אישי, ואני בטוח שגם כל האחרים פה וגם אתה מעדיפים לכתוב html מאשר להתחיל להסתבך עם מחלקות שגם ייקח זמן ללמוד איך לעבוד איתן, גם הן לא חוסכות מי יודע מה בעיות וגם בסופו של דבר מקבלים את אותה תוצאה אבל ביותר זמן כי ה-php צריך ליצור את הקוד.

לעומת זאת, הטופס הוא מצוין, כי הוא חוסך בדיקות תקינות ו-js (אם תחליט לממש js ב-form שלך).

avatar ענה intval ב 28 לינואר 2013 #

הכנתי את זה כי לא היה לי דבר יותר טוב לתכנת

זה הבעיה.
אם הייתי עכשיו מכין אוכל במטבח, והיה יוצא לי משהו בסגנון הזה


ואז הייתי בא ושואל אותך שלוש שאלות:
1) כדאי לי להראות את זה לשף במסעדה שאני ארצה לעבוד בה?
2) זה בכלל לא טעים, מה אפשר לעשות אם זה?
3) כדאי לי לפרסם את זה באתר מתכונים שלי ?

מה היית מצפה שיענו לך ?

avatar ענה liorel100 ב 28 לינואר 2013 #

לא הבנתי אם התמונה שנתת אמורה להיות טעימה או לא, כי אם היא הייתה נאמנה לאמת היא הייתה אמורה להיות מאד טעימה. המחלקה שלי מאד מושקעת ומאפשרת להכין HTML בקלות מאד, כולל טפסים (זה לא היה מיועד לטפסים אז לא היה regex וכדומה).
כל הקטע של מחלקות טופס זה שאם תרצה להשתיל טופס בעמוד תוכל בקלות. אם המחלקה שלי אתה יכול להשתיל כמעט כל דבר בדף בקלות. נוסף על כך באה עם זה מחלקת request שתהפוך את הטופס למערך מאובטח, אם אפשרות לשגיאות מותאמות אישית והמון אפשרויות נוספות כדי לעבד את הטופס בצורה טובה יותר. לדוגמה token יבדוק אם הטוקן פועל, checkboxes ימיר את הפקד למערך של ערכים שהפקד קיבל וכו'.
הייתי מצפה מאנשים שיענו תשובות ענייניות. מצד שני ממישהו שבאמת השקיע זמן בלעשות מדריך שכולו קטילה (כאן) אני לא מצפה את זה.

avatar ענה intval ב 28 לינואר 2013 #

ברור לי שהמחלקה שלך מאוד מושקעת ולי לקח 4 שעות להכין את הדבר הזה בתמונה. מה זה אומר? שזה טעים?
יותר מזה, אני לא אומר שהמחלקה שלך לא טובה או שהאוכל בתמונה זה לא אוכל.
אבל ברור לך שאם למחבר עצמו אין מה לעשות עם זה - לכל השאר בטח שאין שום שימוש?

avatar ענה liorel100 ב 28 לינואר 2013 #

אני יכול לתת לך שימוש מאד עיקרי ומשמעותי של זה (פירטתי אותו כבר למעלה) - כל הקטע של מחלקות טופס זה שאם תרצה להשתיל טופס בעמוד תוכל בקלות. אם המחלקה שלי אתה יכול להשתיל כמעט כל דבר בדף בקלות. נניח אם תרצה להשתיל טופס - תשתיל. תרצה להשתיל פתאום div מעוצב שבתוכו מספר טפסים - תשתיל. כל דבר שתרצה תוכל להשתיל - תוכל להשתיל, לא רק טפסים. באתי לכאן כדי לקבל עוד רעיונות, כי זה די טריוויאלי.

avatar ענה intval ב 28 לינואר 2013 #

אחלה.
מה אני יכול לעשות במחלקה הזאת שאני לא יכול לעשות בפחות זמן בלי המחלקה הזאת?

avatar ענה liorel100 ב 29 לינואר 2013 #

אמרתי לך מה אתה יכול לעשות.
במקום ליצור עשרות Layouts לכל סוג טופס או div שאתה רוצה, אתה יוצר אותן בPHP בקלות.

avatar ענה intval ב 29 לינואר 2013 #

אז כנראה לא הבנתי אותך.
אתה יכול להסביר איך עושים את זה? ומה הגרסה המקבילה בלעשות את זה בלי המחלקה.

avatar ענה liorel100 ב 29 לינואר 2013 #

לדוגמה אתה רוצה כרגע נניח ליצור 3 טפסים לאתר, שהעיצוב שלהם משתנה בהתאם לUA של המשתמש, וגם התוכן שלהם (נניח checkboxes שונים לIE ולFF, כדי לייצג אפשרויות דפדפן שונות). אם אתה תצור את זה סתם בHTML עם CSS זה יכול לקחת הרבה זמן. אם תיצור את זה עם המחלקה שלי - תוכל גם לשבץ את זה בנוחות בדף הרגיל, ולא לעשות כל מיני "התאמות" וגם העיבוד יהיה דרך המחלקה, מה שגם יקל על הפיתוח, וגם יאפשר לעשות את העיבוד בפשטות מאד דרך PHP ולא ליצור 5 דפי HTML וCSS שונים שמייצגים את הDIV המשובץ.

avatar ענה liorel100 ב 29 לינואר 2013 #

ותוסיף לזה את הנוחות הגדולה - לא צריך להשקיע מאמץ בכלל בפיתוח CSS - מעט שורות קוד המייצגות משהו נוח לנעים לשימוש עם מאפיינים ופקדים נוחים (שחלק מהם לא מייצגים תג HTML בודד אלה מספר תגים מאוחדים עם משמעות כל שהיא) כל האופציות התאמה לדפדפנים שונים כבר מותאמות לך שם, בהתאם לUA של הלקוח - זה ייתן רק את הCSS שבאמת חיוני לך. כלומר לfirefox זה בחיים לא ייתן את זה עם -webkit- גם אם צריך -webkit- לכרום.

avatar ענה intval ב 29 לינואר 2013 #

אני חושב שענית לעצמך על שאלה 2 :)

בקשר לשאלות 1 ו 3 כמו שעידן ומיכאל אמרו,
היום לפורטפוליו שלך קוראים גיטאהב
והרשיון על שמך פשוט ימנע מאנשים אחרים להשתמש בקוד שלך.

avatar ענה liorel100 ב 29 לינואר 2013 #

זה נראה לך שימושי? אני יודע למה זה משמש ולמה זה טוב אבל לא יודע אם זה באמת שימושי.
אני בכל אופן יגמור כל מיני תוספים של זה ויעלה את זה לגיטאהב.

avatar ענה liorel100 ב 29 לינואר 2013 #

שכחתי להוסיף שאני עובד על אפשרות לשלב את כל המחלקה עם OB.